﻿using System.Collections.Generic;
using System.Xml.Serialization;

namespace ANEPWebService.SerializableObjects
{
    [XmlRoot("CentroEstudio")]

    public class SerializableCentro
    {
        private string idCentro;
        private List<SerializableAlumno> alumnos;
        private List<SerializableDocente> docentes;
        private List<SerializableGrupo> grupos;

        [XmlElement("IdCentro")]
        public string IdCentro
        {
            get { return idCentro; }
            set { idCentro = value; }
        }

        [XmlArray("Alumnos")]
        public List<SerializableAlumno> Alumnos
        {
            get { return alumnos; }
            set { alumnos = value; }
        }

        [XmlArray("Docentes")]
        public List<SerializableDocente> Docenteses
        {
            get { return docentes; }
            set { docentes = value; }
        }

        [XmlArray("Grupos")]
        public List<SerializableGrupo> Grupos
        {
            get { return grupos; }
            set { grupos = value; }
        }

    }

    public class SerializableDocente
    {
        private string idDocente;
        private string nombreDocente;
        private string tipo = "D";
        private List<SerializableMateria> materiasDocentes;
        

        [XmlElement("IdDocente")]
        public string IdDocente
        {
            get { return idDocente; }
            set { idDocente= value; }
        }

        [XmlElement("NombreDocente")]
        public string Nombre
        {
            get { return nombreDocente; }
            set { nombreDocente = value; }
        }

        [XmlElement("Tipo")]
        public string Tipo
        {
            get { return tipo; }
            set { tipo = value; }
        }

        [XmlArray("MateriasDocentes")]
        public List<SerializableMateria> Materias
        {
            get { return materiasDocentes; }
            set {  materiasDocentes = value; }
        }
    }

    public class SerializableMateria
    {
        private string idMateria;
        private string nombreMateria;
        
        [XmlElement("IdMateria")]
        public string IdMateria
        {
            get { return idMateria; }
            set { idMateria = value; }
        }

        [XmlElement("NombreMateria")]
        public string NombreMateria
        {
            get { return nombreMateria; }
            set { nombreMateria = value; }
        }
    }

    public class SerializableAlumno
    {
        private string idAlumno;
        private string nombreAlumno;
        private List<SerializableResponsable> responsables;
        
        [XmlElement("IdAlumno")]
        public string IdAlumno
        {
            get { return idAlumno; }
            set { idAlumno = value; }
        }

        [XmlElement("NombreAlumno")]
        public string NombreAlumno
        {
            get { return nombreAlumno; }
            set {  nombreAlumno = value; }
        }

        [XmlArray("Responsables")]
        public List<SerializableResponsable> Responsables 
        {
            get { return responsables; }
            set {  responsables= value; }
        }
    }

    public class SerializableResponsable
    {
        private string emailResponsable;
        private string idResponsable;
         [XmlElement("IdResponsable")]
        public string IdResponsable
        {
            get { return idResponsable; }
            set { idResponsable = value; }
        }
        [XmlElement("EmailResponsable")]
        public string EmailResponsable
        {
            get { return emailResponsable; }
            set { emailResponsable = value; }
        }
    }

    public class SerializableGrupo
    {
        private string idGrupo;
        private List<SerializableAlumno> alumnos;
        private List<SerializableDocente> docentes;
        

        [XmlElement("IdGrupo")]
        public string IdGrupo
        {
            get { return idGrupo; }
            set { idGrupo = value; }
        }

        [XmlArray("Alumnos")]
        public List<SerializableAlumno> Alumnos
        {
            get { return alumnos; }
            set { alumnos = value; }
        }

        [XmlArray("Docentes")]
        public List<SerializableDocente> Docenteses
        {
            get { return docentes; }
            set { docentes = value; }
        }

    }
}
